GetUserByIdQueryHandler.execute   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 13
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 13
rs 9.8
c 0
b 0
f 0
cc 2
1
import { Inject } from '@nestjs/common';
2
import { QueryHandler } from '@nestjs/cqrs';
3
import { UserNotFoundException } from 'src/Domain/User/Exception/UserNotFoundException';
4
import { IUserRepository } from 'src/Domain/User/Repository/IUserRepository';
5
import { UserView } from '../View/UserView';
6
import { GetUserByIdQuery } from './GetUserByIdQuery';
7
8
@QueryHandler(GetUserByIdQuery)
9
export class GetUserByIdQueryHandler {
10
  constructor(
11
    @Inject('IUserRepository')
12
    private readonly userRepository: IUserRepository
13
  ) {}
14
15
  public async execute(query: GetUserByIdQuery): Promise<UserView> {
16
    const user = await this.userRepository.findOneById(query.id);
17
    if (!user) {
18
      throw new UserNotFoundException();
19
    }
20
21
    return new UserView(
22
      user.getId(),
23
      user.getFirstName(),
24
      user.getLastName(),
25
      user.getEmail(),
26
      user.getRole()
27
    );
28
  }
29
}
30